2009-07-30 20:31:17 +0000 2009-07-30 20:31:17 +0000
126
126

如何大规模重命名文件?

我有一堆以99 - DescriptiveName.txt模式命名的文件,我想把前面的数字去掉,这样我就只有DescriptiveName.txt

我该怎么做?我可以从命令行做,还是有一个实用程序可以做?

答案 (22)

94
94
94
2009-07-30 20:58:54 +0000

我知道在你的标题中你说的是 “在dos中",但我的印象是你只是在寻找一种方法来做这个,并想知道这是不是最好的方法。

&004

这不是一个命令行工具,但他们确实有一个命令行版本,如果你真的想用这种方式。

60
60
60
2011-07-13 17:30:08 +0000

一个小的PowerShell脚本:

$args | Rename-Item -NewName { $_.Name.ToLower() -replace '\d+ - ' }
ls | Rename-Item -NewName {$_ -replace '(\d+) - (.*).mp3', '$2 - $1.mp3' }

结合更复杂的正则表达式,这可能会变成类似于:

&001

这样就可以把'01 - Beginning.mp3'变成'Beginning - 01.mp3'。

24
24
24
2009-08-07 17:21:40 +0000
24
24
24
2009-08-07 17:53:34 +0000

如果你真的想用windows命令行(如果你不想下载东西的话),你可以这样做:

dir /B > fileList.txt
for /f "tokens=1,2,3" %i in (fileList.txt) DO ren "%i %j %l" %l

第一行将文件列表输出到一个名为fileList.txt的文件中。第二行将列表中的每一个名字分成3个部分,#、"-“和其余的名字。对其中的每一个名字,它都会执行重命名命令。

19
19
19
2009-07-30 21:24:47 +0000

老派:

你可以做一个DIR,然后把输出重定向到一个文件中,如DIR (*.TXT)>TEMP.BAT

然后用编辑器把不需要的部分拿出来,修改你需要的部分。在最上面加一个"@echo off",保存并运行它。

17
17
17
2014-03-18 01:33:41 +0000

另一个选项。* Massive File Renamer ****

它可以轻松地对多个文件和文件扩展名进行*重命名。它是非常快速和简单的!

对于高级用户和开发者,可以使用规则表达式

13
13
13
2009-08-23 08:56:29 +0000

我用Total Commander的多重命名工具(ctrl+M)来做这样的事情。他们的工具非常好用,有太多太多的工具,而且很容易使用,必要时还可以使用正则表达式和模板。

这是我回答的第三或第四个推荐Total Commander的问题了…..。我应该会从他们那里得到佣金的;-)

11
11
11
2009-07-30 22:11:57 +0000

我比较满意的工具是【ReNamer】(http://www.den4b.com/)。它还支持重命名规则的保存,这对我来说很有用,因为我经常做同样的重命名。

以下是一个删除第一个破折号前的文字的例子,但你可以定义很多其他规则。

5
5
5
2009-11-27 23:02:30 +0000

我用过Free Commander Portable(免费软件),效果不错:

  1. 选择或导航到要重命名的文件或目录
4
4
4
2013-01-03 10:47:45 +0000

Pro’s:

  • 非常简单的UI;
  • 开发者熟悉的正则表达式;
  • GPLv2;

Con’s:

  • 不是命令行! :)
3
3
3
2009-08-23 06:16:40 +0000

这里有一个command-line的解决方案—-一个我专门写的Java程序,它是为了让文件名中的 “pattern "更容易工作。它是免费和开源的,所以请随意修改:

RenameWand* http://renamewand.sourceforge. net/

一些相关的使用例子:

删去文件名中"-"之前的所有内容:

java -jar RenameWand.jar "<a> - <b>" "<b>"

在文件名中加入一个3位数的数字,按最后修改的时间排序:

java -jar RenameWand.jar "<a>" "<3|#FT> <a>"

重新排列文件名的部分,并改变大小写:

java -jar RenameWand.jar "<album> - <artist> - <song>.<ext>" 
                          "<artist.upper> <album.title> - <song>.<ext.lower>"
3
3
3
2009-08-23 09:31:32 +0000

我在一个月前发现了RenPhoric。非常棒。

没有复杂的界面,我很快就能按照我的要求重命名。正则表达式功能。从那以后就再也没有用过其他的东西了。

3
3
3
2009-07-30 20:37:17 +0000

最简单的方法是使用 重命名主

2
2
2
2014-07-04 05:53:01 +0000
@echo off setlocal enabledelayedexpansion set X=5 set FOLDER\_PATH=. pushd %FOLDER\_PATH% for %%f in (\*) do if %%f neq %~nx0 ( set "filename=%%~nf" set "filename=!filename:~%X%!" ren "%%f" "!filename!%%~xf" ) popd

保存在一个批处理文件中,然后运行

2
2
2
2013-03-30 20:17:45 +0000

有趣的名字和命令行工具,功能非常强大,非常快速,非常容易使用。"查找和替换文本" FART http://fart-it.sourceforge.net/ 的效果很好!也可以在txt文件中重命名单词。

2
2
2
2013-11-04 09:58:24 +0000

多重命名脚本是一个开源的替代Total Commanders多重命名工具,你可以通过脚本来驱动。它可以使用TC插件获取元数据信息。 https://code.google.com/p/multi-rename-script/

2
2
2
2011-08-14 16:27:25 +0000

我喜欢Cylog的【WildRename】(http://www.cylog.org/utilities/wildrename.jsp)。它功能强大,但又很好用,有很多功能:

1.快速 2.字符串操作 3.计数器 4.通配符 5.正则表达式 6.替换 7.大小写转换 8.记录 9.记录 仿真****(不实际应用就显示结果)

2
2
2
2012-09-10 15:11:39 +0000

像上面的@zdan一样,我是通过命令行(在Windows中使用 “cmd.exe")完成的。和zdan一样,我把列表输出到TXT文件,然后用tokensdelims来重命名文件。在我的案例中,我一开始的文件列表是这样命名的:

name-01-02-2012.csv

我希望文件的日期部分按y/m/d的顺序排列,名字部分放在最后,这样就可以这样写:

2012-01-02-name.csv

要做这个事情,我用了下面的代码。注意,这样做的时候,文件名的所有部分都会被考虑进去,包括”.csv “的扩展名。

dir /B > fileList.txt
for /f "tokens=1,2,3,4,5 delims=-." %i in (fileList.txt) DO ren "%i-%j-%k-%l.%m" %l-%j-%k-%i.%m

&001

tokens 是文件名的 "部分",delims 是分隔符。注意,在我的案例中,我有2个分隔符(一个破折号和一个点)。

我个人对 "批量重命名 "这个应用并不太在意。正如其他人提到的那样,GUI非常糟糕,也不是很直观。只要稍加研究和简单的编码,这些事情就可以快速有效地完成。

1
1
1
2014-12-01 02:56:58 +0000

我开发了一个名为JREN.BAT的混合JScript/batch命令行工具,它可以通过执行正则表达式搜索和替换来重命名文件或文件夹。它是一个纯脚本,可以在XP以后的任何Windows机器上运行。如果JREN.BAT在你当前的目录中,或者更好的是,在你的路径中的某个地方,那么你的重命名任务就会变得非常简单。

1
1
1
2013-03-02 20:08:23 +0000

我使用Blackboard来管理大学的课程。当我大量下载一个作业时(在Blackboard中,点击评分栏的顶部,然后 “作业文件下载",Blackboard会在文件名中添加一堆额外的东西—-往往会使文件名太长,在Windows上无法生效。

这里是这样的:

Recitation20Assignment_studentname_attempt_2013-03-01-20-03-09_Exercise28129.docx

这就是我想要的

studentname.docx

所以我使用了@zdan和@gtr1971建议的方法,在里面的文件文件夹上打开一个命令窗口(CMD.EXE)。

1
1
1
2013-07-10 23:07:13 +0000

这里还有一个简单的程序叫文件属性转换器,你可以用它来重命名文件。这是一个便携的程序,所以你可以把它带在U盘上。 http://www.softpedia.com/get/Desktop-Enhancements/Other-Desktop-Enhancements/File-Attribute-Changer.shtml

0
0
0
2015-03-18 00:47:18 +0000

相关问题

3
19
10
28
7